Clase 2: Investigación reproducible

Derek Corcoran
"09/08, 2018"

¿Que es investigación reproducible?

  • Código, datos (Crudos) y texto entrelazados
  • en R: Rmarkdown (Rmd) y Rpresentation (Rpres) entre otros

Peng

Github

  • Como “Google Drive” o “Dropbox” para código
  • Control de cambios (Podemos volver a cualquier versión anterior)
  • En base a codigo (idealmente), pero hay GUIs
  • Cada proyecto es un repositorio

plot of chunk unnamed-chunk-2

Crear primer repositorio

  • Crearse cuenta en githib.com
  • Crear repositorio en github

plot of chunk unnamed-chunk-3

Crear primer repositorio

plot of chunk unnamed-chunk-4

Copiar la url

plot of chunk unnamed-chunk-5

Volvamos a RStudio

  • Creamos un proyecto nuevo

plot of chunk unnamed-chunk-6

Pegamos la URL

plot of chunk unnamed-chunk-7

La nueva pestaña git

plot of chunk unnamed-chunk-8

Los "¿tres?" pasos de un repositorio

  • Git add: Agregar a los archivos que vas a guardar
  • Git commit: Guardar en el repositorio local (Mi computador)
  • Git push: Guardar en el repositorio remoto (En la nube)

A guardar el repositorio

Repo

Reproducibilidad en R

Rep

  1. Una carpeta
    • Datos crudos (csv, xls, html, json)
    • Codigo y texto (Rmd, Rpres, shiny)
    • Resultados (Manuscrito, Pagina Web, App)

Metas del día de hoy

  1. Un código en un chunk
  2. Un inline code
  3. Una tabla en el Rmarkdown
  4. Primer commit en github
  5. Entender que significan las metas de hoy

Crear un nuevo Rmarkdown

NewRMD

Partes de un Rmd

  1. Texto
  2. Cunks
  3. Inline code
  4. Cheat sheet Rmd
  5. El botón mágico Knit

NewRMD

Texto

Titulo

subtitulo

cursiva

negrita

link

# Titulo

## subtitulo

*cursiva*

**negrita**

[link](https://stackoverflow.com/users/3808018/derek-corcoran)

Chunks (Meta 1)

Chunk

  • echo = T o F muestro o no codigo
  • message = T o F muestra mensajes de paquetes
  • warning = T o F muestra advertencias
  • eval = T o F evaluar o no el código
  • cache = T o F guarda o no el resultado
  • Para más opciones ver este link

Inline code (Meta 2)

Inline

  • Código entrelazado en el texto
  • Para actualizar medias, máximos, mínimos
  • Valores de p, diferencias estadísticas
  • Pueden ser vectores, no tablas.

Ejemplo

Pueden copiar el codigo de el siguiente link, copiarlo en un archivo rmd, apretar knit y debieran ver algo como esto:

Terremotos

Ejercicio 1

  • Usando la base de datos iris crea un inline code que diga cuál es la media del largo del pétalo de la especie Iris virginica
    • solución:
    • la media para I. virginica es 5.552
    • “la media para I. virginica es "r mean((iris %>% filter(Species == "virginica”))$Petal.Length)“”

Empezemos a trabajar!!!

Arrr

Tablas: Kable y Stargazer

  • kable parte de knitr, tabla igual a lo ingresado
  • stargazer mas avanzado, comparación de modelos
  • otras opciones como texreg

Stargazer: Tablas resumen (Meta 3)

  • Chunk debe estar en results: “asis”
  • Si es para html la opción debe estar en type = “html”
  • Si es para pdf la opción debe estar en type = “latex”
  • Se puede exportar tabla
library(stargazer)
stargazer(iris,type = "html")
StatisticNMeanSt. Dev.MinPctl(25)Pctl(75)Max
Sepal.Length1505.8430.8284.3005.1006.4007.900
Sepal.Width1503.0570.4362.0002.8003.3004.400
Petal.Length1503.7581.7651.0001.6005.1006.900
Petal.Width1501.1990.7620.1000.3001.8002.500

Stargazer: Resumen de modelos economía combustible 1

data("mtcars")
kable(head(mtcars))
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1

Stargazer: Resumen de modelos economía combustible 2

M1 <- lm(mpg~wt, data = mtcars)
M2 <- lm(mpg~hp, data = mtcars)
M3 <- lm(mpg~hp + wt, data = mtcars)
stargazer(M1, M2, M3, type ="html", single.row=TRUE)
Dependent variable:
mpg
(1)(2)(3)
wt-5.344*** (0.559)-3.878*** (0.633)
hp-0.068*** (0.010)-0.032*** (0.009)
Constant37.285*** (1.878)30.099*** (1.634)37.227*** (1.599)
Observations323232
R20.7530.6020.827
Adjusted R20.7450.5890.815
Residual Std. Error3.046 (df = 30)3.863 (df = 30)2.593 (df = 29)
F Statistic91.375*** (df = 1; 30)45.460*** (df = 1; 30)69.211*** (df = 2; 29)
Note:*p<0.1; **p<0.05; ***p<0.01

Armemos nuestras propias tablas!!!

Tabla

Meta del día de hoy

Piensen en una pregunta a resolver con sus datos